//package com.diaohaiwen.module.metadata.handler;
//
//import cn.hutool.core.util.StrUtil;
//import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
//import com.diaohaiwen.platform.common.enums.CodeMsgEnum;
//import com.diaohaiwen.platform.framework.web.util.RequestUtil;
//import lombok.Setter;
//import net.sf.jsqlparser.expression.Expression;
//import net.sf.jsqlparser.expression.StringValue;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.List;
//
//@Setter
//@Configuration
//@ConfigurationProperties(prefix = "platform.metadata")
//public class MetadataTenantHandler implements TenantLineHandler {
//
//    public static final String TENANT = "Tenant";
//
//    private List<String> tenantTables;
//
//    private String tenantColumn;
//
//    @Override
//    public Expression getTenantId() {
//        String tenant = getTenantColumn();
//        return new StringValue(tenant);
//    }
//
//    @Override
//    public String getTenantIdColumn() {
//        return tenantColumn;
//    }
//
//    @Override
//    public boolean ignoreTable(String tableName) {
//        return tenantTables != null && !tenantTables.contains(tableName);
//    }
//
//    public static String getTenantColumn() {
//        String header = RequestUtil.getRequest().getHeader(TENANT);
//        if (StrUtil.isBlank(header)) {
//            CodeMsgEnum.TENANT.throwException(String.format("Request Header [%s] is null", TENANT));
//        }
//        return header;
//    }
//
//
//}
